라우팅 (Routing)
개요
라우팅(Routing)은 컴퓨터 네트워크에서 데이터 패킷이 소스(Source)에서 목적지(Destination)까지 효율적으로 전달되도록 경로를 결정하고 전달하는 과정을 의미합니다. 인터넷과 같은 대규모 네트워크에서 수많은 노드(라우터, 스위치 등)가 연결되어 있을 때, 각 데이터 패킷이 최단 경로 또는 최적의 경로를 찾아 이동할 수 있도록 하는 핵심 메커니즘입니다.
라우팅은 OSI 모델의 제3계층(네트워크 계층)에서 수행되며, 주로 IP 주소 기반의 논리적 주소를 사용하여 동작합니다. 라우팅이 올바르게 수행되지 않으면 데이터는 목적지에 도달하지 못하거나, 비효율적인 경로를 통해 지연이 발생할 수 있습니다.
라우팅의 기본 원리
라우팅 프로세스는 크게 두 가지 주요 단계로 구성됩니다.
-
라우팅 테이블 구축 (Routing Table Construction)
- 라우터는 네트워크 topology(구조)에 대한 정보를 수집하여 라우팅 테이블을 생성하고 유지합니다.
- 이 테이블에는 목적지 네트워크 주소, 다음 홉(Next Hop) 주소, 출구 인터페이스, 비용(Cost) 등의 정보가 포함됩니다.
-
패킷 전달 (Packet Forwarding)
- 라우터가 데이터를 수신하면, 수신된 패킷의 목적지 IP 주소를 확인합니다.
- 라우팅 테이블을 참조하여 해당 목적지로 향하는 최적의 경로를 결정합니다.
- 결정된 경로를 따라 패킷을 다음 홉으로 전달합니다.
라우팅 알고리즘의 분류
라우팅 프로토콜은 네트워크 상태 정보를 어떻게 수집하고 공유하느냐에 따라 주로 정적 라우팅과 동적 라우팅으로 나뉩니다.
1. 정적 라우팅 (Static Routing)
관리자가 수동으로 라우팅 경로를 직접 입력하여 구성하는 방식입니다.
- 특징:
- 설정이 간단하고 예측 가능함.
- 라우터의 CPU 자원을 거의 사용하지 않음.
- 네트워크 구조가 변경될 때마다 관리자가 직접 설정을 수정해야 함.
- 적합한 환경: 소규모 네트워크, 백본 링크, 보안이 중요한 환경.
- 단점: 네트워크 규모가 커지거나拓扑이 복잡해질 경우 관리가 매우 어려워짐.
2. 동적 라우팅 (Dynamic Routing)
라우팅 프로토콜을 사용하여 라우터들이 자동으로 네트워크 정보를 교환하고 경로를 계산하는 방식입니다.
- 특징:
- 네트워크 변화(링크 다운, 장애 등)에 자동으로 적응함.
- 대규모 네트워크에서 확장성이 뛰어남.
- 라우터 간 통신으로 인한 오버헤드가 발생함.
- 주요 프로토콜:
- RIP (Routing Information Protocol): 홉 수(Hop Count)를 기준으로 가장 적은 홉 수를 가진 경로를 선택. 설정이 쉽지만 수렴 속도가 느리고 최대 홉 수 제한(15)이 있음.
- OSPF (Open Shortest Path First): 링크 상태(Link-State) 알고리즘을 사용. 네트워크를 영역(Area)으로 나누어 효율적으로 관리하며, 빠른 수렴 속도와 확장성을 제공. 기업망에서 널리 사용됨.
- BGP (Border Gateway Protocol): 인터넷의 핵심인 AS(자율 시스템) 간 라우팅을 담당. 정책 기반 라우팅이 가능하며, 인터넷 전체의 경로를 결정하는 데 필수적임.
라우팅 테이블의 구성 요소
라우터가 패킷을 전달할 때 참조하는 라우팅 테이블은 일반적으로 다음과 같은 정보를 포함합니다.
| 구성 요소 |
설명 |
| 네트워크 주소 |
목적지 네트워크의 IP 주소 및 서브넷 마스크 |
| 메트릭 (Metric) |
경로의 '비용'을 나타내는 값. 값이 낮을수록 더 좋은 경로로 간주됨 (예: OSPF의 비용, RIP의 홉 수) |
| 다음 홉 (Next Hop) |
패킷을 전달해야 할 다음 라우터의 IP 주소 |
| 출구 인터페이스 |
패킷을 보낼 물리적 또는 논리적 인터페이스 (예: eth0, Serial0/0) |
| 관리 거리 (Administrative Distance) |
서로 다른 라우팅 소스의 신뢰도를 나타내는 값. 값이 낮을수록 우선순위가 높음 (예: 정적 라우팅의 AD는 1, OSPF는 110) |
라우팅의 주요 유형
1. 호스트 라우팅 (Host Routing)
목적지 IP 주소가 특정 단일 호스트를 지칭하는 라우팅 엔트리입니다. 일반적으로 /32 (IPv4) 또는 /128 (IPv6) 서브넷 마스크를 사용합니다.
2. 디폴트 라우팅 (Default Routing)
라우팅 테이블에 명시적인 경로가 없을 때 사용하는 '마지막 resort' 경로입니다. 목적지 네트워크가 테이블에 없을 경우 이 경로를 따라 패킷을 전달합니다. 일반적으로 0.0.0.0/0으로 표기됩니다.
3. 스태틱 라우팅 vs 동적 라우팅 비교
| 구분 |
정적 라우팅 |
동적 라우팅 |
| 설정 방식 |
수동 설정 |
자동 학습 |
| 관리 난이도 |
소규모 네트워크에서 용이 |
대규모 네트워크에서 필수 |
| 자원 소모 |
낮음 |
높음 (CPU, 대역폭) |
| 적응성 |
낮음 (수동 개입 필요) |
높음 (자동 복구 및 경로 변경) |
| 보안 |
높음 (불필요한 트래픽 없음) |
상대적 낮음 (프로토콜 해킹 가능성) |
관련 기술 및 용어
- 네이팅 (NAT, Network Address Translation): 사설 IP 주소를 공인 IP 주소로 변환하는 기술. 라우팅과 밀접하게 연관되어 인터넷 접근을 가능하게 함.
- QoS (Quality of Service): 네트워크 트래픽의 우선순위를 관리하여 특정 애플리케이션(예: VoIP, 비디오 스트리밍)의 품질을 보장하는 기술. 라우팅 시 우선순위 고려에 활용됨.
- SDN (Software-Defined Networking): 네트워크 제어平面(Control Plane)와 데이터平面(Data Plane)를 분리하여 중앙 집중식으로 라우팅 정책을 관리하는 아키텍처.
참고 자료 및 관련 문서
결론
라우팅은 현대 네트워크 인프라의 핵심 요소로, 데이터의 효율적이고 안정적인 전송을 보장합니다. 소규모 네트워크에서는 단순하고 안정적인 정적 라우팅이 적합할 수 있으나, 대규모 및 복잡한 네트워크 환경에서는 변화에 유연하게 대응할 수 있는 동적 라우팅 프로토콜(OSPF, BGP 등)의 이해와 적절한 구성이 필수적입니다. 네트워크 관리자 및 엔지니어는 각 프로토콜의 장단점과 네트워크 요구사항을 고려하여 최적의 라우팅 전략을 수립해야 합니다.
제어 평면과 데이터 평면 (Control Plane vs Data Plane)
라우팅 프로세스는 논리적인 결정 과정과 물리적인 패킷 전달 과정으로 명확히 구분됩니다.
- 제어 평면 (Control Plane): "어디로 가야 하는가?"를 결정하는 지능적인 영역입니다. 라우팅 프로토콜(OSPF, BGP 등)이 동작하며, 네트워크 토폴로지를 학습하고 최적의 경로를 계산하여 라우팅 테이블(RIB)을 생성하고 유지하는 역할을 합니다.
- 데이터 평면 (Data Plane / Forwarding Plane): "결정된 경로로 패킷을 보낸다"는 실행 영역입니다. 제어 평면에서 생성된 라우팅 테이블을 기반으로, 실제로 들어온 패킷의 목적지 주소를 확인하고 적절한 출력 인터페이스로 빠르게 전달(Forwarding)하는 하드웨어 중심의 동작을 수행합니다.
이 두 평면의 상호작용을 통해 라우터는 복잡한 네트워크 환경에서도 실시간으로 경로를 수정하고 대량의 트래픽을 효율적으로 처리할 수 있습니다.
동적 라우팅 알고리즘 상세 비교
동적 라우팅은 정보를 수집하는 방식에 따라 거리 벡터와 링크 상태 알고리즘으로 나뉩니다.
| 구분 |
거리 벡터 (Distance Vector) |
링크 상태 (Link-State) |
| 핵심 개념 |
인접 라우터로부터 거리와 방향 정보만 수신 |
전체 네트워크 지도를 직접 구축 |
| 정보 공유 |
주기적으로 전체 라우팅 테이블 공유 |
변화가 있을 때만 링크 상태 정보(LSA) 공유 |
| 경로 계산 |
벨만-포드(Bellman-Ford) 알고리즘 |
다익스트라(Dijkstra) 알고리즘 |
| 수렴 속도 |
느림 (Counting to Infinity 문제 발생 가능) |
빠름 (전체 토폴로지 파악으로 즉각 대응) |
| 자원 소모 |
낮음 (단순 계산) |
높음 (메모리 및 CPU 사용량 많음) |
| 대표 프로토콜 |
RIP, EIGRP (하이브리드) |
OSPF, IS-IS |
최장 일치 원칙 (Longest Prefix Match)
라우팅 테이블에 동일한 목적지 네트워크에 대해 여러 개의 경로가 존재할 때, 라우터는 가장 구체적인 경로(가장 긴 서브넷 마스크를 가진 경로)를 우선적으로 선택합니다. 이를 최장 일치 원칙(LPM)이라고 합니다.
[동작 예시]
목적지 IP 주소가 192.168.10.15인 패킷이 도착했을 때, 라우팅 테이블에 다음과 같은 경로가 있다면:
1. 192.168.0.0/16 $\rightarrow$ Interface A
2. 192.168.10.0/24 $\rightarrow$ Interface B
3. 192.168.10.0/28 $\rightarrow$ Interface C
결과: 라우터는 가장 긴 접두사(Prefix)를 가진 192.168.10.0/28 (Interface C)를 선택하여 패킷을 전송합니다. 이는 더 좁고 구체적인 범위의 네트워크 설정이 일반적인 설정보다 우선한다는 원칙에 기반합니다.
현대적 라우팅 트렌드 및 확장 기술
하나의 IP 주소를 여러 서버(노드)가 공유하는 방식입니다. 라우팅 프로토콜이 패킷을 네트워크상에서 가장 가까운(비용이 가장 낮은) 노드로 전달합니다. 주로 DNS 서버나 CDN(Content Delivery Network)에서 응답 속도를 높이고 부하를 분산하기 위해 사용됩니다.
2. IPv6 라우팅
IPv6는 주소 공간의 확장뿐만 아니라 라우팅 효율성을 높였습니다. 헤더 구조를 단순화하여 라우터의 처리 부담을 줄였으며, 계층적 주소 할당을 통해 전 세계 라우팅 테이블의 크기가 비대해지는 것을 방지합니다.
3. 가상 라우팅 (VPC Routing)
클라우드 환경(AWS, Azure, GCP 등)의 VPC(Virtual Private Cloud)에서는 소프트웨어 정의 네트워크(SDN) 기반의 가상 라우터가 동작합니다.
* 특징: 물리적 장비 설정 없이 API나 콘솔을 통해 라우팅 테이블을 수정하며, 서브넷 간 통신이나 인터넷 게이트웨이(IGW) 연결을 논리적으로 제어합니다.
* 실제 설정 사례:
* Public Subnet: 0.0.0.0/0 $\rightarrow$ Internet Gateway (외부 인터넷 통신 허용)
* Private Subnet: 10.0.0.0/16 $\rightarrow$ Local (VPC 내부 통신만 허용)
* NAT Gateway 설정: Private Subnet의 0.0.0.0/0 $\rightarrow$ NAT Gateway (외부 업데이트를 위한 일방향 통신 허용)
SDN 기반 제어 평면의 중앙 집중화
전통적인 라우팅은 각 라우터가 스스로 경로를 계산하는 분산형 제어 평면 구조였습니다. 반면, SDN(Software-Defined Networking)은 제어 평면을 별도의 중앙 컨트롤러(Centralized Controller)로 분리합니다.
- 전통적 방식: 각 라우터가 독립적으로 판단 $\rightarrow$ 설정 변경 시 모든 장비를 개별 수정해야 함.
- SDN 방식: 중앙 컨트롤러가 전체 네트워크 뷰를 가지고 모든 라우터의 포워딩 테이블을 직접 제어 $\rightarrow$ 네트워크 전체 정책을 한 곳에서 즉시 변경 가능하며, 트래픽 엔지니어링(Traffic Engineering)이 매우 유연해집니다.
동적 라우팅 프로토콜은 운용 범위와 목적에 따라 내부 게이트웨이 프로토콜(IGP)과 외부 게이트웨이 프로토콜(EGP)로 체계화할 수 있습니다.
| 구분 |
내부 게이트웨이 프로토콜 (IGP) |
외부 게이트웨이 프로토콜 (EGP) |
| 정의 |
하나의 자율 시스템(AS) 내부에서 경로를 결정 |
서로 다른 자율 시스템(AS) 간에 경로를 결정 |
| 주요 목적 |
네트워크 내부의 빠른 수렴과 최적 경로 탐색 |
AS 간의 정책 기반 경로 제어 및 연결성 확보 |
| 신뢰 범위 |
동일 관리 주체 내의 신뢰된 네트워크 |
서로 다른 관리 주체 간의 불신/정책 기반 네트워크 |
| 대표 프로토콜 |
RIP, OSPF, EIGRP, IS-IS |
BGP (Border Gateway Protocol) |
| 특징 |
메트릭(비용, 홉 수) 중심의 자동 경로 계산 |
경로 속성(Path Attributes) 중심의 정책적 결정 |
메트릭 산정 기준의 다양성
라우팅 테이블의 메트릭(Metric)은 단순히 물리적 거리만을 의미하지 않으며, 프로토콜과 네트워크 환경에 따라 다양한 기준을 적용하여 '최적 경로'를 산출합니다.
- 홉 수 (Hop Count): 목적지까지 거치는 라우터의 개수 (예: RIP). 단순하지만 링크의 속도를 반영하지 못함.
- 대역폭 (Bandwidth): 링크의 전송 속도. 대역폭이 높을수록 비용을 낮게 책정 (예: OSPF의 Cost = $\frac{10^8}{\text{Bandwidth}}$).
- 지연 시간 (Delay): 패킷이 링크를 통과하는 데 걸리는 시간. 물리적 거리나 혼잡도를 반영.
- 신뢰도 (Reliability): 링크의 에러 발생률이나 가동률을 수치화하여 안정적인 경로를 선택.
- 복합 메트릭 (Composite Metric): 대역폭, 지연 시간, 부하, 신뢰도를 모두 조합하여 계산 (예: EIGRP).
라우팅 루프(Routing Loop)란 패킷이 목적지에 도달하지 못하고 두 개 이상의 라우터 사이를 무한히 맴도는 현상을 말합니다. 이는 주로 동적 라우팅 프로토콜의 정보 업데이트 지연이나 잘못된 설정으로 인해 발생합니다.
루프 발생 과정 도식화
라우터 A $\rightarrow$ 라우터 B $\rightarrow$ 라우터 C $\rightarrow$ 라우터 A (반복)
1. 장애 발생: 라우터 A와 목적지 네트워크 사이의 링크가 단절됨.
2. 잘못된 정보 전파: 라우터 B가 이전에 A로부터 받은 "목적지로 가는 경로가 있다"는 정보를 A에게 다시 전달.
3. 루프 형성: A는 B를 통해 목적지로 갈 수 있다고 믿고 패킷을 B로 보냄 $\rightarrow$ B는 다시 A로 보냄 $\rightarrow$ 패킷이 무한 뱅글뱅글 돎.
방지 기술
- Split Horizon (수평 분할): 특정 인터페이스로 수신한 라우팅 정보를 동일한 인터페이스로 다시 송신하지 않는 기법.
- Route Poisoning (경로 포이즈닝): 링크 장애 발생 시 해당 경로의 메트릭을 무한대(예: RIP의 경우 16홉)로 설정하여 즉시 '도달 불능'임을 알리는 기법.
- Hold-down Timer (홀드다운 타이머): 경로 장애 정보 수신 후, 일정 시간 동안 해당 경로에 대한 변경 업데이트를 무시하여 잘못된 정보가 전파되는 것을 방지하는 기법.
정책 기반 라우팅 (Policy-Based Routing, PBR)
정책 기반 라우팅(PBR)은 목적지 IP 주소만을 기준으로 경로를 결정하는 일반적인 라우팅과 달리, 관리자가 정의한 특정 정책(Policy)에 따라 패킷의 경로를 강제로 지정하는 기술입니다.
주요 특징 및 활용 사례
- 판단 기준 확장: 출발지 IP, 프로토콜 타입(TCP/UDP), 소스/목적지 포트 번호, 패킷 크기 등을 조건으로 사용.
- 활용 사례:
- 트래픽 분리: 일반 웹 트래픽은 일반 회선으로, 중요 업무 트래픽은 전용 회선으로 유도.
- 부하 분산 (Load Sharing): 특정 사용자 그룹의 트래픽을 다른 게이트웨이로 분산.
- 보안 강화: 특정 출발지에서 오는 트래픽을 강제로 보안 검사 장비(Firewall, IPS)를 거치게 설정.
PBR 설정 예시 (Cisco IOS 기준)
! 1. 정책을 적용할 트래픽 정의 (ACL 설정)
access-list 101 permit ip 192.168.10.0 0.0.0.255 any
! 2. 경로 맵(Route-Map) 생성 및 다음 홉 지정
route-map PBR_POLICY permit 10
match ip address 101
set ip next-hop 10.1.1.2
! 3. 인터페이스에 정책 적용 (트래픽이 들어오는 입력 인터페이스)
interface GigabitEthernet0/0
ip policy route-map PBR_POLICY
IPv6 NDP 및 라우터 솔리시테이션
IPv6에서는 IPv4의 ARP(Address Resolution Protocol)를 대체하여 NDP(Neighbor Discovery Protocol)를 사용합니다. NDP는 ICMPv6 메시지를 기반으로 동작하며, 라우터 탐색 및 주소 자동 설정에 핵심적인 역할을 합니다.
- NDP의 역할: 인접 노드의 링크 계층 주소(MAC) 확인, 중복 주소 검사(DAD), 라우터 발견 및 접두사(Prefix) 학습.
- 라우터 솔리시테이션(Router Solicitation, RS) 과정:
- RS 송신: 호스트가 네트워크에 접속하면 "주변에 라우터가 있습니까?"라는 요청 메시지(RS)를 멀티캐스트로 전송합니다.
- RA 응답: 라우터는 이를 수신하고 "내가 라우터이며, 네트워크 접두사는 XXX입니다"라는 라우터 광고(Router Advertisement, RA) 메시지를 응답합니다.
- 자동 설정: 호스트는 RA 메시지에 포함된 정보를 바탕으로 자신의 IPv6 주소를 자동으로 생성(SLAAC)하고 기본 게이트웨이를 설정합니다.
# 라우팅 (Routing)
## 개요
**라우팅(Routing)**은 컴퓨터 네트워크에서 데이터 패킷이 소스(Source)에서 목적지(Destination)까지 효율적으로 전달되도록 경로를 결정하고 전달하는 과정을 의미합니다. 인터넷과 같은 대규모 네트워크에서 수많은 노드(라우터, 스위치 등)가 연결되어 있을 때, 각 데이터 패킷이 최단 경로 또는 최적의 경로를 찾아 이동할 수 있도록 하는 핵심 메커니즘입니다.
라우팅은 OSI 모델의 제3계층(네트워크 계층)에서 수행되며, 주로 IP 주소 기반의 논리적 주소를 사용하여 동작합니다. 라우팅이 올바르게 수행되지 않으면 데이터는 목적지에 도달하지 못하거나, 비효율적인 경로를 통해 지연이 발생할 수 있습니다.
---
## 라우팅의 기본 원리
라우팅 프로세스는 크게 두 가지 주요 단계로 구성됩니다.
1. **라우팅 테이블 구축 (Routing Table Construction)**
* 라우터는 네트워크 topology(구조)에 대한 정보를 수집하여 라우팅 테이블을 생성하고 유지합니다.
* 이 테이블에는 목적지 네트워크 주소, 다음 홉(Next Hop) 주소, 출구 인터페이스, 비용(Cost) 등의 정보가 포함됩니다.
2. **패킷 전달 (Packet Forwarding)**
* 라우터가 데이터를 수신하면, 수신된 패킷의 목적지 IP 주소를 확인합니다.
* 라우팅 테이블을 참조하여 해당 목적지로 향하는 최적의 경로를 결정합니다.
* 결정된 경로를 따라 패킷을 다음 홉으로 전달합니다.
---
## 라우팅 알고리즘의 분류
라우팅 프로토콜은 네트워크 상태 정보를 어떻게 수집하고 공유하느냐에 따라 주로 **정적 라우팅**과 **동적 라우팅**으로 나뉩니다.
### 1. 정적 라우팅 (Static Routing)
관리자가 수동으로 라우팅 경로를 직접 입력하여 구성하는 방식입니다.
* **특징**:
* 설정이 간단하고 예측 가능함.
* 라우터의 CPU 자원을 거의 사용하지 않음.
* 네트워크 구조가 변경될 때마다 관리자가 직접 설정을 수정해야 함.
* **적합한 환경**: 소규모 네트워크, 백본 링크, 보안이 중요한 환경.
* **단점**: 네트워크 규모가 커지거나拓扑이 복잡해질 경우 관리가 매우 어려워짐.
### 2. 동적 라우팅 (Dynamic Routing)
라우팅 프로토콜을 사용하여 라우터들이 자동으로 네트워크 정보를 교환하고 경로를 계산하는 방식입니다.
* **특징**:
* 네트워크 변화(링크 다운, 장애 등)에 자동으로 적응함.
* 대규모 네트워크에서 확장성이 뛰어남.
* 라우터 간 통신으로 인한 오버헤드가 발생함.
* **주요 프로토콜**:
* **RIP (Routing Information Protocol)**: 홉 수(Hop Count)를 기준으로 가장 적은 홉 수를 가진 경로를 선택. 설정이 쉽지만 수렴 속도가 느리고 최대 홉 수 제한(15)이 있음.
* **OSPF (Open Shortest Path First)**: 링크 상태(Link-State) 알고리즘을 사용. 네트워크를 영역(Area)으로 나누어 효율적으로 관리하며, 빠른 수렴 속도와 확장성을 제공. 기업망에서 널리 사용됨.
* **BGP (Border Gateway Protocol)**: 인터넷의 핵심인 AS(자율 시스템) 간 라우팅을 담당. 정책 기반 라우팅이 가능하며, 인터넷 전체의 경로를 결정하는 데 필수적임.
---
## 라우팅 테이블의 구성 요소
라우터가 패킷을 전달할 때 참조하는 라우팅 테이블은 일반적으로 다음과 같은 정보를 포함합니다.
| 구성 요소 | 설명 |
| :--- | :--- |
| **네트워크 주소** | 목적지 네트워크의 IP 주소 및 서브넷 마스크 |
| **메트릭 (Metric)** | 경로의 '비용'을 나타내는 값. 값이 낮을수록 더 좋은 경로로 간주됨 (예: OSPF의 비용, RIP의 홉 수) |
| **다음 홉 (Next Hop)** | 패킷을 전달해야 할 다음 라우터의 IP 주소 |
| **출구 인터페이스** | 패킷을 보낼 물리적 또는 논리적 인터페이스 (예: eth0, Serial0/0) |
| **관리 거리 (Administrative Distance)** | 서로 다른 라우팅 소스의 신뢰도를 나타내는 값. 값이 낮을수록 우선순위가 높음 (예: 정적 라우팅의 AD는 1, OSPF는 110) |
---
## 라우팅의 주요 유형
### 1. 호스트 라우팅 (Host Routing)
목적지 IP 주소가 특정 단일 호스트를 지칭하는 라우팅 엔트리입니다. 일반적으로 `/32` (IPv4) 또는 `/128` (IPv6) 서브넷 마스크를 사용합니다.
### 2. 디폴트 라우팅 (Default Routing)
라우팅 테이블에 명시적인 경로가 없을 때 사용하는 '마지막 resort' 경로입니다. 목적지 네트워크가 테이블에 없을 경우 이 경로를 따라 패킷을 전달합니다. 일반적으로 `0.0.0.0/0`으로 표기됩니다.
### 3. 스태틱 라우팅 vs 동적 라우팅 비교
| 구분 | 정적 라우팅 | 동적 라우팅 |
| :--- | :--- | :--- |
| **설정 방식** | 수동 설정 | 자동 학습 |
| **관리 난이도** | 소규모 네트워크에서 용이 | 대규모 네트워크에서 필수 |
| **자원 소모** | 낮음 | 높음 (CPU, 대역폭) |
| **적응성** | 낮음 (수동 개입 필요) | 높음 (자동 복구 및 경로 변경) |
| **보안** | 높음 (불필요한 트래픽 없음) | 상대적 낮음 (프로토콜 해킹 가능성) |
---
## 관련 기술 및 용어
* **네이팅 (NAT, Network Address Translation)**: 사설 IP 주소를 공인 IP 주소로 변환하는 기술. 라우팅과 밀접하게 연관되어 인터넷 접근을 가능하게 함.
* **QoS (Quality of Service)**: 네트워크 트래픽의 우선순위를 관리하여 특정 애플리케이션(예: VoIP, 비디오 스트리밍)의 품질을 보장하는 기술. 라우팅 시 우선순위 고려에 활용됨.
* **SDN (Software-Defined Networking)**: 네트워크 제어平面(Control Plane)와 데이터平面(Data Plane)를 분리하여 중앙 집중식으로 라우팅 정책을 관리하는 아키텍처.
---
## 참고 자료 및 관련 문서
* [OSPF 프로토콜 상세 가이드](#)
* [BGP 인터넷 라우팅 원리](#)
* [네트워크 기초: OSI 7계층 모델](#)
* [Cisco IOS 라우팅 명령어 참고](#)
---
## 결론
라우팅은 현대 네트워크 인프라의 핵심 요소로, 데이터의 효율적이고 안정적인 전송을 보장합니다. 소규모 네트워크에서는 단순하고 안정적인 정적 라우팅이 적합할 수 있으나, 대규모 및 복잡한 네트워크 환경에서는 변화에 유연하게 대응할 수 있는 동적 라우팅 프로토콜(OSPF, BGP 등)의 이해와 적절한 구성이 필수적입니다. 네트워크 관리자 및 엔지니어는 각 프로토콜의 장단점과 네트워크 요구사항을 고려하여 최적의 라우팅 전략을 수립해야 합니다.
## 제어 평면과 데이터 평면 (Control Plane vs Data Plane)
라우팅 프로세스는 논리적인 결정 과정과 물리적인 패킷 전달 과정으로 명확히 구분됩니다.
* **제어 평면 (Control Plane)**: "어디로 가야 하는가?"를 결정하는 지능적인 영역입니다. 라우팅 프로토콜(OSPF, BGP 등)이 동작하며, 네트워크 토폴로지를 학습하고 최적의 경로를 계산하여 **라우팅 테이블(RIB)**을 생성하고 유지하는 역할을 합니다.
* **데이터 평면 (Data Plane / Forwarding Plane)**: "결정된 경로로 패킷을 보낸다"는 실행 영역입니다. 제어 평면에서 생성된 라우팅 테이블을 기반으로, 실제로 들어온 패킷의 목적지 주소를 확인하고 적절한 출력 인터페이스로 빠르게 전달(Forwarding)하는 하드웨어 중심의 동작을 수행합니다.
이 두 평면의 상호작용을 통해 라우터는 복잡한 네트워크 환경에서도 실시간으로 경로를 수정하고 대량의 트래픽을 효율적으로 처리할 수 있습니다.
## 동적 라우팅 알고리즘 상세 비교
동적 라우팅은 정보를 수집하는 방식에 따라 거리 벡터와 링크 상태 알고리즘으로 나뉩니다.
| 구분 | 거리 벡터 (Distance Vector) | 링크 상태 (Link-State) |
| :--- | :--- | :--- |
| **핵심 개념** | 인접 라우터로부터 거리와 방향 정보만 수신 | 전체 네트워크 지도를 직접 구축 |
| **정보 공유** | 주기적으로 전체 라우팅 테이블 공유 | 변화가 있을 때만 링크 상태 정보(LSA) 공유 |
| **경로 계산** | 벨만-포드(Bellman-Ford) 알고리즘 | 다익스트라(Dijkstra) 알고리즘 |
| **수렴 속도** | 느림 (Counting to Infinity 문제 발생 가능) | 빠름 (전체 토폴로지 파악으로 즉각 대응) |
| **자원 소모** | 낮음 (단순 계산) | 높음 (메모리 및 CPU 사용량 많음) |
| **대표 프로토콜** | RIP, EIGRP (하이브리드) | OSPF, IS-IS |
## 최장 일치 원칙 (Longest Prefix Match)
라우팅 테이블에 동일한 목적지 네트워크에 대해 여러 개의 경로가 존재할 때, 라우터는 **가장 구체적인 경로(가장 긴 서브넷 마스크를 가진 경로)**를 우선적으로 선택합니다. 이를 **최장 일치 원칙(LPM)**이라고 합니다.
**[동작 예시]**
목적지 IP 주소가 `192.168.10.15`인 패킷이 도착했을 때, 라우팅 테이블에 다음과 같은 경로가 있다면:
1. `192.168.0.0/16` $\rightarrow$ Interface A
2. `192.168.10.0/24` $\rightarrow$ Interface B
3. `192.168.10.0/28` $\rightarrow$ Interface C
**결과:** 라우터는 가장 긴 접두사(Prefix)를 가진 **`192.168.10.0/28` (Interface C)**를 선택하여 패킷을 전송합니다. 이는 더 좁고 구체적인 범위의 네트워크 설정이 일반적인 설정보다 우선한다는 원칙에 기반합니다.
## 현대적 라우팅 트렌드 및 확장 기술
### 1. Anycast 라우팅
하나의 IP 주소를 여러 서버(노드)가 공유하는 방식입니다. 라우팅 프로토콜이 패킷을 네트워크상에서 **가장 가까운(비용이 가장 낮은)** 노드로 전달합니다. 주로 DNS 서버나 CDN(Content Delivery Network)에서 응답 속도를 높이고 부하를 분산하기 위해 사용됩니다.
### 2. IPv6 라우팅
IPv6는 주소 공간의 확장뿐만 아니라 라우팅 효율성을 높였습니다. 헤더 구조를 단순화하여 라우터의 처리 부담을 줄였으며, 계층적 주소 할당을 통해 전 세계 라우팅 테이블의 크기가 비대해지는 것을 방지합니다.
### 3. 가상 라우팅 (VPC Routing)
클라우드 환경(AWS, Azure, GCP 등)의 VPC(Virtual Private Cloud)에서는 소프트웨어 정의 네트워크(SDN) 기반의 가상 라우터가 동작합니다.
* **특징**: 물리적 장비 설정 없이 API나 콘솔을 통해 라우팅 테이블을 수정하며, 서브넷 간 통신이나 인터넷 게이트웨이(IGW) 연결을 논리적으로 제어합니다.
* **실제 설정 사례**:
* **Public Subnet**: `0.0.0.0/0` $\rightarrow$ Internet Gateway (외부 인터넷 통신 허용)
* **Private Subnet**: `10.0.0.0/16` $\rightarrow$ Local (VPC 내부 통신만 허용)
* **NAT Gateway 설정**: Private Subnet의 `0.0.0.0/0` $\rightarrow$ NAT Gateway (외부 업데이트를 위한 일방향 통신 허용)
## SDN 기반 제어 평면의 중앙 집중화
전통적인 라우팅은 각 라우터가 스스로 경로를 계산하는 **분산형 제어 평면** 구조였습니다. 반면, SDN(Software-Defined Networking)은 제어 평면을 별도의 **중앙 컨트롤러(Centralized Controller)**로 분리합니다.
* **전통적 방식**: 각 라우터가 독립적으로 판단 $\rightarrow$ 설정 변경 시 모든 장비를 개별 수정해야 함.
* **SDN 방식**: 중앙 컨트롤러가 전체 네트워크 뷰를 가지고 모든 라우터의 포워딩 테이블을 직접 제어 $\rightarrow$ 네트워크 전체 정책을 한 곳에서 즉시 변경 가능하며, 트래픽 엔지니어링(Traffic Engineering)이 매우 유연해집니다.
## IGP와 EGP의 구분
동적 라우팅 프로토콜은 운용 범위와 목적에 따라 **내부 게이트웨이 프로토콜(IGP)**과 **외부 게이트웨이 프로토콜(EGP)**로 체계화할 수 있습니다.
| 구분 | 내부 게이트웨이 프로토콜 (IGP) | 외부 게이트웨이 프로토콜 (EGP) |
| :--- | :--- | :--- |
| **정의** | 하나의 자율 시스템(AS) 내부에서 경로를 결정 | 서로 다른 자율 시스템(AS) 간에 경로를 결정 |
| **주요 목적** | 네트워크 내부의 빠른 수렴과 최적 경로 탐색 | AS 간의 정책 기반 경로 제어 및 연결성 확보 |
| **신뢰 범위** | 동일 관리 주체 내의 신뢰된 네트워크 | 서로 다른 관리 주체 간의 불신/정책 기반 네트워크 |
| **대표 프로토콜** | RIP, OSPF, EIGRP, IS-IS | BGP (Border Gateway Protocol) |
| **특징** | 메트릭(비용, 홉 수) 중심의 자동 경로 계산 | 경로 속성(Path Attributes) 중심의 정책적 결정 |
## 메트릭 산정 기준의 다양성
라우팅 테이블의 메트릭(Metric)은 단순히 물리적 거리만을 의미하지 않으며, 프로토콜과 네트워크 환경에 따라 다양한 기준을 적용하여 '최적 경로'를 산출합니다.
* **홉 수 (Hop Count)**: 목적지까지 거치는 라우터의 개수 (예: RIP). 단순하지만 링크의 속도를 반영하지 못함.
* **대역폭 (Bandwidth)**: 링크의 전송 속도. 대역폭이 높을수록 비용을 낮게 책정 (예: OSPF의 Cost = $\frac{10^8}{\text{Bandwidth}}$).
* **지연 시간 (Delay)**: 패킷이 링크를 통과하는 데 걸리는 시간. 물리적 거리나 혼잡도를 반영.
* **신뢰도 (Reliability)**: 링크의 에러 발생률이나 가동률을 수치화하여 안정적인 경로를 선택.
* **복합 메트릭 (Composite Metric)**: 대역폭, 지연 시간, 부하, 신뢰도를 모두 조합하여 계산 (예: EIGRP).
## 라우팅 루프와 방지 메커니즘
**라우팅 루프(Routing Loop)**란 패킷이 목적지에 도달하지 못하고 두 개 이상의 라우터 사이를 무한히 맴도는 현상을 말합니다. 이는 주로 동적 라우팅 프로토콜의 정보 업데이트 지연이나 잘못된 설정으로 인해 발생합니다.
### 루프 발생 과정 도식화
`라우터 A` $\rightarrow$ `라우터 B` $\rightarrow$ `라우터 C` $\rightarrow$ `라우터 A` (반복)
1. **장애 발생**: 라우터 A와 목적지 네트워크 사이의 링크가 단절됨.
2. **잘못된 정보 전파**: 라우터 B가 이전에 A로부터 받은 "목적지로 가는 경로가 있다"는 정보를 A에게 다시 전달.
3. **루프 형성**: A는 B를 통해 목적지로 갈 수 있다고 믿고 패킷을 B로 보냄 $\rightarrow$ B는 다시 A로 보냄 $\rightarrow$ 패킷이 무한 뱅글뱅글 돎.
### 방지 기술
* **Split Horizon (수평 분할)**: 특정 인터페이스로 수신한 라우팅 정보를 동일한 인터페이스로 다시 송신하지 않는 기법.
* **Route Poisoning (경로 포이즈닝)**: 링크 장애 발생 시 해당 경로의 메트릭을 무한대(예: RIP의 경우 16홉)로 설정하여 즉시 '도달 불능'임을 알리는 기법.
* **Hold-down Timer (홀드다운 타이머)**: 경로 장애 정보 수신 후, 일정 시간 동안 해당 경로에 대한 변경 업데이트를 무시하여 잘못된 정보가 전파되는 것을 방지하는 기법.
## 정책 기반 라우팅 (Policy-Based Routing, PBR)
**정책 기반 라우팅(PBR)**은 목적지 IP 주소만을 기준으로 경로를 결정하는 일반적인 라우팅과 달리, 관리자가 정의한 특정 정책(Policy)에 따라 패킷의 경로를 강제로 지정하는 기술입니다.
### 주요 특징 및 활용 사례
* **판단 기준 확장**: 출발지 IP, 프로토콜 타입(TCP/UDP), 소스/목적지 포트 번호, 패킷 크기 등을 조건으로 사용.
* **활용 사례**:
* **트래픽 분리**: 일반 웹 트래픽은 일반 회선으로, 중요 업무 트래픽은 전용 회선으로 유도.
* **부하 분산 (Load Sharing)**: 특정 사용자 그룹의 트래픽을 다른 게이트웨이로 분산.
* **보안 강화**: 특정 출발지에서 오는 트래픽을 강제로 보안 검사 장비(Firewall, IPS)를 거치게 설정.
### PBR 설정 예시 (Cisco IOS 기준)
```ios
! 1. 정책을 적용할 트래픽 정의 (ACL 설정)
access-list 101 permit ip 192.168.10.0 0.0.0.255 any
! 2. 경로 맵(Route-Map) 생성 및 다음 홉 지정
route-map PBR_POLICY permit 10
match ip address 101
set ip next-hop 10.1.1.2
! 3. 인터페이스에 정책 적용 (트래픽이 들어오는 입력 인터페이스)
interface GigabitEthernet0/0
ip policy route-map PBR_POLICY
```
## IPv6 NDP 및 라우터 솔리시테이션
IPv6에서는 IPv4의 ARP(Address Resolution Protocol)를 대체하여 **NDP(Neighbor Discovery Protocol)**를 사용합니다. NDP는 ICMPv6 메시지를 기반으로 동작하며, 라우터 탐색 및 주소 자동 설정에 핵심적인 역할을 합니다.
* **NDP의 역할**: 인접 노드의 링크 계층 주소(MAC) 확인, 중복 주소 검사(DAD), 라우터 발견 및 접두사(Prefix) 학습.
* **라우터 솔리시테이션(Router Solicitation, RS) 과정**:
1. **RS 송신**: 호스트가 네트워크에 접속하면 "주변에 라우터가 있습니까?"라는 요청 메시지(RS)를 멀티캐스트로 전송합니다.
2. **RA 응답**: 라우터는 이를 수신하고 "내가 라우터이며, 네트워크 접두사는 XXX입니다"라는 **라우터 광고(Router Advertisement, RA)** 메시지를 응답합니다.
3. **자동 설정**: 호스트는 RA 메시지에 포함된 정보를 바탕으로 자신의 IPv6 주소를 자동으로 생성(SLAAC)하고 기본 게이트웨이를 설정합니다.